<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" dir="ltr" class="client-nojs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>History of C++ - cppreference.com</title>
<meta charset="UTF-8">
<meta name="generator" content="MediaWiki 1.21.2">


<link rel="shortcut icon" href="../../../favicon.ico">



<link rel="stylesheet" href="../../../common/ext.css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" href="../../../common/site_modules.css">
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}#toc{display:none}.editsection{display:none}
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-css:7:472787eddcf4605d11de8c7ef047234f */</style>

<script src="../../../common/startup_scripts.js"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"cpp/language/history","wgTitle":"cpp/language/history","wgCurRevisionId":79149,"wgArticleId":4470,"wgIsArticle":true,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"cpp/language/history","wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function(){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":0,"showtoolbar":1,"skin":"cppreference2","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":0,
"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"en","language":"en","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"gadget-ColiruCompiler":1});;},{},{});mw.loader.implement("user.tokens",function(){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});;},{},{});
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-js:7:ca03345b1e2c4d90a25d968753a73b92 */
}</script>
<script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script>
<!--[if lt IE 7]><style type="text/css">body{behavior:url("/mwiki/skins/cppreference2/csshover.min.htc")}</style><![endif]-->
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_language_history skin-cppreference2 action-view cpp-navbar">
        <!-- header -->
        
        <!-- /header -->
        <!-- content -->
        <div id="cpp-content-base">
            <div id="content">
                <a id="top"></a>
                <div id="mw-js-message" style="display:none;"></div>
                                <!-- firstHeading -->
                <h1 id="firstHeading" class="firstHeading">History of C++</h1>
                <!-- /firstHeading -->
                <!-- bodyContent -->
                <div id="bodyContent">
                                        <!-- tagline -->
                    <div id="siteSub">From cppreference.com</div>
                    <!-- /tagline -->
                                        <!-- subtitle -->
                    <div id="contentSub"><span class="subpages">&lt; <a href="../../cpp.html" title="cpp">cpp</a>‎ | <a href="../language.1.html" title="cpp/language">language</a></span></div>
                    <!-- /subtitle -->
                                                            <!-- bodycontent -->
                    <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr">
<div class="t-navbar" style="">
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head">
<a href="../../cpp.html" title="cpp"> C++</a><div class="t-navbar-menu"><div>
<div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em;">
<tr class="t-nv"><td colspan="5"> <a href="../language.1.html" title="cpp/language"> Language</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../header.html" title="cpp/header"> Standard library headers</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../concept.html" title="cpp/concept"> Concepts</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../utility.html" title="cpp/utility"> Utilities library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../string.html" title="cpp/string"> Strings library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../container.html" title="cpp/container"> Containers library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../algorithm.html" title="cpp/algorithm"> Algorithms library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../iterator.html" title="cpp/iterator"> Iterators library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../numeric.html" title="cpp/numeric"> Numerics library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../io.html" title="cpp/io"> Input/output library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../locale.html" title="cpp/locale"> Localizations library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../regex.html" title="cpp/regex"> Regular expressions library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../atomic.html" title="cpp/atomic"> Atomic operations library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../thread.html" title="cpp/thread"> Thread support library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../experimental.html" title="cpp/experimental"> Technical Specifications</a> </td></tr>
</table></div>
<div></div>
</div></div>
</div>
<div class="t-navbar-sep"> </div>
<div class="t-navbar-head">
<a href="../language.1.html" title="cpp/language"> C++ language</a><div class="t-navbar-menu"><div>
<div style="display:inline-block">
<div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv-h1"><td colspan="5"> General topics</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="../preprocessor.html" title="cpp/preprocessor"> Preprocessor</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../comments.html" title="cpp/comment"> Comments</a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="../keywords.html" title="cpp/keyword"> Keywords</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="escape.html" title="cpp/language/escape"> Escape sequences</a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h1"><td colspan="5"> Flow control</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Conditional execution statements</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="if.html" title="cpp/language/if"> <code>if</code></a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="switch.html" title="cpp/language/switch"> <code>switch</code></a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h2"><td colspan="5"> Iteration statements (loops)</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="for.html" title="cpp/language/for"> <code>for</code></a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="range-for.html" title="cpp/language/range-for"> range-<code>for</code></a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="while.html" title="cpp/language/while"> <code>while</code></a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="do.html" title="cpp/language/do"> <code>do-while</code></a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h2"><td colspan="5"> Jump statements </td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="continue.html" title="cpp/language/continue"> <code>continue</code></a> - <a href="break.html" title="cpp/language/break"> <code>break</code></a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="goto.html" title="cpp/language/goto"> <code>goto</code></a> - <a href="return.html" title="cpp/language/return"> <code>return</code></a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h1"><td colspan="5"> Functions</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="function.html" title="cpp/language/function"> Function declaration</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="lambda.html" title="cpp/language/lambda"> Lambda function declaration</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="inline.html" title="cpp/language/inline"> <code>inline</code> specifier</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="except_spec.html" title="cpp/language/except spec"> Exception specifications</a> <span class="t-mark">(deprecated)</span>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="noexcept_spec.html" title="cpp/language/noexcept spec"> <code>noexcept</code> specifier</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv-h1"><td colspan="5"> Exceptions</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="throw.html" title="cpp/language/throw"> <code>throw</code>-expression</a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="try_catch.html" title="cpp/language/try catch"> <code>try</code>-<code>catch</code> block</a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h1"><td colspan="5"> Namespaces</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="namespace.html" title="cpp/language/namespace"> Namespace declaration</a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="namespace_alias.html" title="cpp/language/namespace alias"> Namespace aliases</a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h1"><td colspan="5"> Types</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="types.html" title="cpp/language/types"> Fundamental types</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="enum.html" title="cpp/language/enum"> Enumeration types</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="function.html" title="cpp/language/function"> Function types</a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="class.html" title="cpp/language/class"> Compound types</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="union.html" title="cpp/language/union"> Union types</a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h2"><td colspan="5"> Specifiers</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="decltype.html" title="cpp/language/decltype"> <code>decltype</code></a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="auto.html" title="cpp/language/auto"> <code>auto</code></a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="alignas.html" title="cpp/language/alignas"> <code>alignas</code></a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="cv.html" title="cpp/language/cv"> <code>const</code>/<code>volatile</code></a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="constexpr.html" title="cpp/language/constexpr"> <code>constexpr</code></a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv"><td colspan="5"> <a href="storage_duration.html" title="cpp/language/storage duration"> Storage duration specifiers</a>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Initialization</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="default_initialization.html" title="cpp/language/default initialization"> Default initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="value_initialization.html" title="cpp/language/value initialization"> Value initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="zero_initialization.html" title="cpp/language/zero initialization"> Zero initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="copy_initialization.html" title="cpp/language/copy initialization"> Copy initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="direct_initialization.html" title="cpp/language/direct initialization"> Direct initialization</a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="aggregate_initialization.html" title="cpp/language/aggregate initialization"> Aggregate initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="list_initialization.html" title="cpp/language/list initialization"> List initialization</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="constant_initialization.html" title="cpp/language/constant initialization"> Constant initialization</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="reference_initialization.html" title="cpp/language/reference initialization"> Reference initialization</a>
</td></tr>
</table></div></td>
</tr>
</table></div>
</div>
<div style="display:inline-block">
<div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv-h1"><td colspan="5"> Expressions</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="value_category.html" title="cpp/language/value category"> Value categories</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="eval_order.html" title="cpp/language/eval order"> Order of evaluation</a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="operators.html" title="cpp/language/operators"> Operators</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="operator_precedence.html" title="cpp/language/operator precedence"> Operator precedence</a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv"><td colspan="5"> <a href="operator_alternative.html" title="cpp/language/operator alternative"> Alternative representations</a>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Literals</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="bool_literal.html" title="cpp/language/bool literal"> Boolean</a> - <a href="integer_literal.html" title="cpp/language/integer literal"> Integer</a> - <a href="floating_literal.html" title="cpp/language/floating literal"> Floating-point</a>
</td></tr>   
<tr class="t-nv"><td colspan="5"> <a href="character_literal.html" title="cpp/language/character literal"> Character</a> - <a href="string_literal.html" title="cpp/language/string literal"> String</a> - <a href="nullptr.html" title="cpp/language/nullptr"> <code>nullptr</code></a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr> 
<tr class="t-nv"><td colspan="5"> <a href="user_literal.html" title="cpp/language/user literal"> User-defined</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv-h1"><td colspan="5"> Utilities</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="attributes.html" title="cpp/language/attributes"> Attributes</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Types</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="typedef.html" title="cpp/language/typedef"> <code>typedef</code> declaration</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="type_alias.html" title="cpp/language/type alias"> Type alias declaration</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Casts</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="implicit_cast.html" title="cpp/language/implicit cast"> Implicit conversions</a> - <a href="explicit_cast.html" title="cpp/language/explicit cast"> Explicit conversions</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="static_cast.html" title="cpp/language/static cast"> <code>static_cast</code></a> - <a href="dynamic_cast.html" title="cpp/language/dynamic cast"> <code>dynamic_cast</code></a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="const_cast.html" title="cpp/language/const cast"> <code>const_cast</code></a> - <a href="reinterpret_cast.html" title="cpp/language/reinterpret cast"> <code>reinterpret_cast</code></a>
</td></tr>
<tr class="t-nv-h2"><td colspan="5"> Memory allocation</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="new.html" title="cpp/language/new"> <code>new</code> expression</a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="delete.html" title="cpp/language/delete"> <code>delete</code> expression</a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h1"><td colspan="5"> Classes</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="class.html" title="cpp/language/class"> Class declaration</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="constructor.html" title="cpp/language/initializer list"> Initializer lists</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="this.html" title="cpp/language/this"> <code>this</code> pointer</a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="access.html" title="cpp/language/access"> Access specifiers</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="friend.html" title="cpp/language/friend"> <code>friend</code> specifier</a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h2"><td colspan="5"> Class-specific function properties</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="virtual.html" title="cpp/language/virtual"> Virtual function</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="override.html" title="cpp/language/override"> override specifier</a>  <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="final.html" title="cpp/language/final"> final specifier</a>  <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="explicit.html" title="cpp/language/explicit"> <code>explicit</code></a>  <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="static.html" title="cpp/language/static"> <code>static</code></a> </td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h2"><td colspan="5"> Special member functions</td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="default_constructor.html" title="cpp/language/default constructor"> Default constructor</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="copy_constructor.html" title="cpp/language/copy constructor"> Copy constructor</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="move_constructor.html" title="cpp/language/move constructor"> Move constructor</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="as_operator.html" title="cpp/language/as operator"> Copy assignment</a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="move_operator.html" title="cpp/language/move operator"> Move assignment</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="destructor.html" title="cpp/language/destructor"> Destructor</a>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h1"><td colspan="5">Templates </td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="class_template.html" title="cpp/language/class template"> Class template </a>
</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="function_template.html" title="cpp/language/function template"> Function template </a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="template_specialization.html" title="cpp/language/template specialization"> Template specialization</a>
</td></tr>   
<tr class="t-nv"><td colspan="5"> <a href="parameter_pack.html" title="cpp/language/parameter pack"> Parameter packs</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span>
</td></tr>
</table></div></td>
</tr>
<tr class="t-nv-h1"><td colspan="5"> Miscellaneous </td></tr>
<tr class="t-nv-col-table">
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="asm.html" title="cpp/language/asm"> Inline assembly</a>
</td></tr>
</table></div></td>
<td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <strong class="selflink"> History of C++</strong>
</td></tr>
</table></div></td>
</tr>
</table></div>
</div>
<div></div>
</div></div>
</div>
<div class="t-navbar-sep"> </div>
</div>
<table id="toc" class="toc"><tr><td>
<div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="history.html#Early_C.2B.2B"><span class="tocnumber">1</span> <span class="toctext">Early C++</span></a></li>
<li class="toclevel-1 tocsection-2">
<a href="history.html#Standard_C.2B.2B"><span class="tocnumber">2</span> <span class="toctext">Standard C++</span></a>
<ul>
<li class="toclevel-2 tocsection-3"><a href="history.html#Future_development"><span class="tocnumber">2.1</span> <span class="toctext">Future development</span></a></li>
<li class="toclevel-2 tocsection-4"><a href="history.html#See_also"><span class="tocnumber">2.2</span> <span class="toctext">See also</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="history.html#External_links"><span class="tocnumber">2.3</span> <span class="toctext">External links</span></a></li>
</ul>
</li>
</ul>
</td></tr></table>
<h2>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Early C++">edit</a>]</span> <span class="mw-headline" id="Early_C.2B.2B">Early C++</span>
</h2>
<ul><li> 1979: C with Classes first implemented
</li></ul>
<ol>
<li> New features: <a href="classes.html" title="cpp/language/classes">classes</a>, <a href="member_functions.html" title="cpp/language/member functions">member functions</a>, <a href="derived_class.html" title="cpp/language/derived class">derived classes</a>, separate compilation, <a href="access.html" title="cpp/language/access">public and private access control</a>, <a href="friend.html" title="cpp/language/friend">friends</a>, type checking of function arguments, <a href="default_arguments.html" title="cpp/language/default arguments">default arguments</a>, <a href="inline.html" title="cpp/language/inline">inline functions</a>, <a href="as_operator.html" title="cpp/language/as operator">overloaded assignment operator</a>, <a href="constructor.html" title="cpp/language/constructor" class="mw-redirect">constructors</a>, <a href="destructor.html" title="cpp/language/destructor">destructors</a>, f() same as f(void), call-function and return-function (synchronization features, not in C++)
</li>
<li> Libraries: the concurrent task library (not in C++)
</li>
</ol>
<ul>
<li> 1982: C with Classes reference manual published
</li>
<li> 1984: C84 implemented, reference manual published
</li>
<li> 1985: Cfront 1.0
</li>
</ul>
<ol>
<li> New features: <a href="virtual.html" title="cpp/language/virtual">virtual functions</a>, function and <a href="operators.html" title="cpp/language/operators">operator overloading</a>, <a href="reference.html" title="cpp/language/reference">references</a>, <a href="../memory/new/operator_new.html" title="cpp/memory/new/operator new">new</a> and <a href="../memory/new/operator_delete.html" title="cpp/memory/new/operator delete">delete</a> operators, <a href="cv.html" title="cpp/language/cv">the keyword const</a>, scope resolution operator
</li>
<li> Library additions: <a href="../numeric/complex.html" title="cpp/numeric/complex">complex</a>, <a href="../string/basic_string.html" title="cpp/string/basic string">string</a>, <a href="../header/iostream.html" title="cpp/header/iostream">iostream</a>
</li>
</ol>
<ul>
<li> 1985: The C++ Programming Language, 1st edition
</li>
<li> 1987: C++ support in GCC 1.15.3
</li>
<li> 1989: Cfront 2.0
</li>
</ul>
<ol>
<li> New features: <a href="derived_class.html" title="cpp/language/derived class">multiple inheritance</a>, <a href="pointer.html" title="cpp/language/pointer">pointers to members</a>, <a href="access.html" title="cpp/language/access">protected access</a>, type-safe linkage, <a href="abstract_class.html" title="cpp/language/abstract class">abstract classes</a>, <a href="static.html#Static_member_functions" title="cpp/language/static">static</a> and <a href="member_functions.html#const-.2C_volatile-.2C_and_ref-qualified_member_functions" title="cpp/language/member functions">const</a> member functions, class-specific <a href="../memory/new/operator_new.html#Replacing_and_overloading" title="cpp/memory/new/operator new">new</a> and <a href="../memory/new/operator_delete.html#Replacing_and_overloading" title="cpp/memory/new/operator delete">delete</a>
</li>
<li> Library additions: <a href="../io/manip.html" title="cpp/io/manip">I/O manipulators</a>
</li>
</ol>
<ul><li> 1990: The Annotated C++ Reference Manual
</li></ul>
<p>This book described the language as designed, including some features that were not yet implemented. It served as the de-facto standard until the ISO.
</p>
<ol><li> New features: <a href="namespace.html" title="cpp/language/namespace">namespaces</a>, <a href="exceptions.html" title="cpp/language/exceptions">exception handling</a>, <a href="nested_classes.html" title="cpp/language/nested classes" class="mw-redirect">nested classes</a>
</li></ol>
<ul>
<li> 1991: Cfront 3.0
</li>
<li> 1991: The C++ Programming Language, 2nd edition
</li>
</ul>
<h2>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Standard C++">edit</a>]</span> <span class="mw-headline" id="Standard_C.2B.2B">Standard C++</span>
</h2>
<ul>
<li> 1990 ANSI C++ Committee founded
</li>
<li> 1991 ISO C++ Committee founded
</li>
<li> 1992 <a rel="nofollow" class="external text" href="http%3A//www.sgi.com/tech/stl">STL</a> implemented in C++
</li>
<li> 1998 <code><b>C++98</b></code> (ISO/IEC 14882:1998)
</li>
</ul>
<ol>
<li> New features: RTTI (<a href="dynamic_cast.html" title="cpp/language/dynamic cast">dynamic_cast</a>, <a href="typeid.html" title="cpp/language/typeid">typeid</a>), <a href="virtual.html" title="cpp/language/virtual">covariant return types</a>, <a href="cast_operator.html" title="cpp/language/cast operator">cast operators</a>, <a href="cv.html" title="cpp/language/cv">mutable</a>, <a href="types.html#Boolean_type" title="cpp/language/types">bool</a>, declarations in conditions, <a href="templates.html" title="cpp/language/templates">template instantiations</a>, <a href="member_template.html" title="cpp/language/member template">member templates</a>, export
</li>
<li> Library additions: <a href="../container.html" title="cpp/container">containers</a>, <a href="../algorithm.html" title="cpp/algorithm">algorithms</a>, <a href="../iterator.html" title="cpp/iterator">iterators</a>, <a href="../utility/functional.html" title="cpp/utility/functional">function objects</a> (based on <a rel="nofollow" class="external text" href="http%3A//www.sgi.com/tech/stl">STL</a>), <a href="../locale.html" title="cpp/locale">locales</a>, <a href="../utility/bitset.html" title="cpp/utility/bitset">bitset</a>, <a href="../numeric/valarray.html" title="cpp/numeric/valarray">valarray</a>, <a href="../memory/auto_ptr.html" title="cpp/memory/auto ptr">auto_ptr</a>, <a href="../string/basic_string.html" title="cpp/string/basic string">templatized string</a>, <a href="../header/iostream.html" title="cpp/header/iostream">iostream</a>, and <a href="../numeric/complex.html" title="cpp/numeric/complex">complex</a>.
</li>
</ol>
<ul>
<li> 1998 The C++ Programming Language, 3rd edition
</li>
<li> 1999 <a rel="nofollow" class="external text" href="http%3A//www.boost.org">Boost</a> founded by the committee members to produce new high-quality candidate libraries for the standard.
</li>
<li> 2003 <code><b>C++03</b></code> (ISO/IEC 14882:2003)
</li>
</ul>
<p>This was a minor revision, intended to be little more than a technical corrigendum
</p>
<ol>
<li> New features: <a href="value_initialization.html" title="cpp/language/value initialization">value initialization</a>
</li>
<li> Defect Reports fixed: <a rel="nofollow" class="external text" href="http%3A//cplusplus.github.com/LWG/lwg-status.html#TC1">125 defects</a>, including defect <a rel="nofollow" class="external text" href="http%3A//cplusplus.github.com/LWG/lwg-defects.html#69">69</a>, which made <span class="t-lc"><a href="../container/vector.html" title="cpp/container/vector">std::vector</a></span> contiguous.
</li>
</ol>
<ul>
<li> 2006 Performance TR (ISO/IEC TR 18015:2006) (<a rel="nofollow" class="external text" href="http%3A//www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm%3Fcsnumber%3D43351">ISO Store</a>) (<a rel="nofollow" class="external text" href="http%3A//www.open-std.org/jtc1/sc22/wg21/docs/TR18015.pdf">2006 draft</a>) 
</li>
<li> 2007 Library extension TR1 (ISO/IEC TR 19768:2007)  (<a rel="nofollow" class="external text" href="http%3A//www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm%3Fcsnumber%3D43289">ISO store</a>) (<a rel="nofollow" class="external text" href="http%3A//www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1745.pdf">2005 draft</a>).
</li>
</ul>
<p>This TR is a C++ library extension, which adds the following to the C++ standard library:
</p>
<ol>
<li> From Boost: <a href="../utility/functional/reference_wrapper.html" title="cpp/utility/functional/reference wrapper">Reference wrapper</a>, <a href="../memory.html#Smart_pointers" title="cpp/memory">Smart pointers</a>, <a href="../utility/functional/mem_fn.html" title="cpp/utility/functional/mem fn">Member function</a>, <a href="../types/result_of.html" title="cpp/types/result of">Result Of</a>, <a href="../utility/functional/bind.html" title="cpp/utility/functional/bind">Bind</a>, <a href="../utility/functional/function.html" title="cpp/utility/functional/function">Function</a>, <a href="../types.html" title="cpp/types">Type Traits</a>, <a href="../numeric/random.html" title="cpp/numeric/random">Random</a>, Mathematical Special Functions, <a href="../utility/tuple.html" title="cpp/utility/tuple">Tuple</a>, <a href="../container/array.html" title="cpp/container/array">Array</a>, <a href="../container.html#Unordered_associative_containers" title="cpp/container">Unordered Containers</a> (including <a href="../utility/hash.html" title="cpp/utility/hash">Hash</a>), and <a href="../regex.html" title="cpp/regex">Regular Expressions</a>.
</li>
<li> From C99: mathematical functions from math.h that were new in C99, <a href="../string/byte/isblank.html" title="cpp/string/byte/isblank">blank character class</a>, <a href="../numeric/fenv.html" title="cpp/numeric/fenv">Floating-point environment</a>, <a href="../io/manip/fixed.html" title="cpp/io/manip/fixed">hexfloat I/O Manipulator</a>, <a href="../types/integer.html" title="cpp/types/integer">fixed-size integral types</a>, <a href="types.html#Integer_types" title="cpp/language/types">the long long type</a>, <a href="../utility/variadic/va_copy.html" title="cpp/utility/variadic/va copy">va_copy</a>, the <span class="t-lc">snprintf()</span> and <a href="../io/c/vfscanf.html" title="cpp/io/c/vfscanf"><tt>vfscanf()</tt></a> families of functions, and the C99 conversion specifies for <a href="../io/c/printf.html" title="cpp/io/c/printf" class="mw-redirect"><tt>printf()</tt></a> and <a href="../io/c/scanf.html" title="cpp/io/c/scanf" class="mw-redirect"><tt>scanf()</tt></a> families of functions. 
</li>
</ol>
<p>All of TR1 except for the special functions was included in C++11, with minor changes.
</p>
<ul><li> 2010 Mathematical special functions TR (ISO/IEC 29124:2010) (<a rel="nofollow" class="external text" href="http%3A//www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm%3Fcsnumber%3D50511">ISO Store</a>) (<a rel="nofollow" class="external text" href="http%3A//www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3060.pdf">2010 draft</a>)
</li></ul>
<p>This TR is a C++ standard library extension, which adds the special functions that were part of TR1, but were not included in C++11: elliptic integrals, exponential integral, Laguerre polynomials, Legendre polynomials, Hermite polynomials, Bessel functions, Newmann functions, beta function, and Riemann zeta function.
</p>
<ul><li> 2011 <code><b>C++11</b></code> (ISO/IEC 14882:2011) (<a rel="nofollow" class="external text" href="http%3A//www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm%3Fcsnumber%3D50372">ISO Store</a>) (<a rel="nofollow" class="external text" href="http%3A//webstore.ansi.org/RecordDetail.aspx%3Fsku%3DINCITS/ISO/IEC%2B14882-2012">ANSI Store</a>) (<a rel="nofollow" class="external text" href="http%3A//www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf">Post-publication draft</a>).
</li></ul>
<p>A large number of changes were introduced to both standardize existing practices and improve the abstractions available to the C++ programmers
</p>
<ol>
<li> New language features: <a href="auto.html" title="cpp/language/auto">auto</a> and <a href="decltype.html" title="cpp/language/decltype">decltype</a>, defaulted and deleted functions, <a href="final.html" title="cpp/language/final">final</a> and <a href="override.html" title="cpp/language/override">override</a>, <a href="function.html#Function_declaration" title="cpp/language/function">trailing return type</a>, <a href="reference.html" title="cpp/language/reference">rvalue references</a>, <a href="move_constructor.html" title="cpp/language/move constructor">move constructors</a>/<a href="move_operator.html" title="cpp/language/move operator">move assignment</a>, <a href="enum.html" title="cpp/language/enum">scoped enums</a>, <a href="constexpr.html" title="cpp/language/constexpr">constexpr</a> and <a href="../concept/LiteralType.html" title="cpp/concept/LiteralType">literal types</a>, <a href="list_initialization.html" title="cpp/language/list initialization">list initialization</a>, <a href="constructor.html#Delegating_constructor" title="cpp/language/initializer list">delegating</a> and <a href="using_declaration.html" title="cpp/language/using declaration">inherited</a> constructors, brace-or-equal initializers, <a href="nullptr.html" title="cpp/language/nullptr">nullptr</a>, <a href="types.html#Integer_types" title="cpp/language/types">long long</a>, <a href="types.html#Character_types" title="cpp/language/types">char16_t and char32_t</a>, <a href="type_alias.html" title="cpp/language/type alias">type aliases</a>, <a href="parameter_pack.html" title="cpp/language/parameter pack">variadic templates</a>, <a href="union.html" title="cpp/language/union">generalized unions</a>, <a href="../concept/PODType.html" title="cpp/concept/PODType">generalized PODs</a>, <a href="string_literal.html" title="cpp/language/string literal">Unicode string literals</a>, <a href="user_literal.html" title="cpp/language/user literal">user-defined literals</a>, <a href="attributes.html" title="cpp/language/attributes">attributes</a>, <a href="lambda.html" title="cpp/language/lambda">lambda expressions</a>, <a href="noexcept_spec.html" title="cpp/language/noexcept spec">noexcept</a>, <a href="alignof.html" title="cpp/language/alignof">alignof</a> and <a href="alignas.html" title="cpp/language/alignas">alignas</a>, multithreaded memory model, <a href="storage_duration.html#Storage_duration" title="cpp/language/storage duration">thread-local storage</a>, <a href="../memory.html#Garbage_collector_support" title="cpp/memory">GC interface</a>, <a href="range-for.html" title="cpp/language/range-for">range for</a> (based on a Boost library), <a href="static_assert.html" title="cpp/language/static assert">static assertions</a> (based on a Boost library)
</li>
<li> New library features: <a href="../atomic.html" title="cpp/atomic">atomic operations library</a>, emplace() and other use of rvalue references throughout all parts of the existing library, <a href="../utility/initializer_list.html" title="cpp/utility/initializer list">std::initializer_list</a>, stateful and <a href="../memory/scoped_allocator_adaptor.html" title="cpp/memory/scoped allocator adaptor">scoped</a> allocators, <a href="../container/forward_list.html" title="cpp/container/forward list">forward_list</a>, <a href="../chrono.html" title="cpp/chrono">chrono library</a>, <a href="../numeric/ratio.html" title="cpp/numeric/ratio">ratio library</a>, new algorithms, <a href="../locale.html#Locale-independent_unicode_conversion_facets" title="cpp/locale">Unicode conversion facets</a>
</li>
<li> From TR1: all of TR1 except Special Functions.
</li>
<li> From Boost: <a href="../thread.html" title="cpp/thread">The thread library</a>, <a href="../error/exception_ptr.html" title="cpp/error/exception ptr">exception_ptr</a>, <a href="../error/error_code.html" title="cpp/error/error code">error_code</a> and <a href="../error/error_condition.html" title="cpp/error/error condition">error_condition</a>, iterator improvements (<a href="../iterator/begin.html" title="cpp/iterator/begin">std::begin</a>, <a href="../iterator/end.html" title="cpp/iterator/end">std::end</a>, <a href="../iterator/next.html" title="cpp/iterator/next">std::next</a>, <a href="../iterator/prev.html" title="cpp/iterator/prev">std::prev</a>)
</li>
<li> From C: C-style Unicode conversion functions
</li>
<li> Defect Reports fixed: <a rel="nofollow" class="external text" href="http%3A//cplusplus.github.com/LWG/lwg-status.html#CD1">363 defects</a> resolved by the 2008 draft and <a rel="nofollow" class="external text" href="http%3A//cplusplus.github.com/LWG/lwg-status.html#C%2B%2B11">322 defects</a> resolved after. Notable defects include <a rel="nofollow" class="external text" href="http%3A//cplusplus.github.com/LWG/lwg-defects.html#530">530</a>, which made <span class="t-lc"><a href="../string/basic_string.html" title="cpp/string/basic string">std::basic_string</a></span> objects contiguous.
</li>
</ol>
<ul><li> 2011 Decimal floating-point TR (ISO/IEC TR 24733:2011) (<a rel="nofollow" class="external text" href="http%3A//www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm%3Fcsnumber%3D38843">ISO Store</a>) (<a rel="nofollow" class="external text" href="http%3A//www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2849.pdf">2009 draft</a>)
</li></ul>
<p>This TR implements the decimal floating-point types from IEEE 754-2008 Standard for Floating-Point Arithmetic: std::decimal::decimal32, std::decimal::decimal64, and std::decimal::decimal128.
</p>
<ul>
<li> 2012 <a rel="nofollow" class="external text" href="http%3A//isocpp.org">The Standard C++ Foundation</a> founded
</li>
<li> 2013 The C++ Programming Language, 4th edition
</li>
<li> 2014 <code><b>C++14</b></code> (<a rel="nofollow" class="external text" href="http%3A//www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm%3Fcsnumber%3D64029">ISO Store</a>) (<a rel="nofollow" class="external text" href="https%3A//github.com/cplusplus/draft/blob/master/papers/n4140.pdf%3Fraw%3Dtrue">2014 final draft</a>)
</li>
</ul>
<p>Minor revision of the C++ standard
</p>
<ol>
<li> New language features: <a href="variable_template.html" title="cpp/language/variable template">variable templates</a>, <a href="lambda.html" title="cpp/language/lambda">polymorphic lambdas</a>, lambda captures expressions, new/delete elision, <a href="constexpr.html" title="cpp/language/constexpr">relaxed restrictions on constexpr functions</a>, <a href="integer_literal.html" title="cpp/language/integer literal">binary literals</a>, digit separators, <a href="function.html#Return_type_deduction_.28since_C.2B.2B14.29" title="cpp/language/function">return type deduction for functions</a>, <a href="aggregate_initialization.html" title="cpp/language/aggregate initialization">aggregate initialization</a> for classes with brace-or-equal initializers.
</li>
<li> New library features: <span class="t-lc"><a href="../memory/unique_ptr/make_unique.html" title="cpp/memory/unique ptr/make unique">std::make_unique</a></span>, <span class="t-lc"><a href="../thread/shared_timed_mutex.html" title="cpp/thread/shared timed mutex">std::shared_timed_mutex</a></span> and <span class="t-lc"><a href="../thread/shared_lock.html" title="cpp/thread/shared lock">std::shared_lock</a></span>, <span class="t-lc"><a href="../utility/integer_sequence.html" title="cpp/utility/integer sequence">std::integer_sequence</a></span>, <span class="t-lc"><a href="../utility/exchange.html" title="cpp/utility/exchange">std::exchange</a></span>, <span class="t-lc"><a href="../io/manip/quoted.html" title="cpp/io/manip/quoted">std::quoted</a></span>, and many small improvements to existing library facilities, such as two-range overloads for some algorithms, type alias versions of type traits, user-defined string, duration, and complex number literals, etc.
</li>
<li> Defect Reports fixed: <a rel="nofollow" class="external text" href="http%3A//cplusplus.github.io/LWG/lwg-status.html#C%2B%2B14">149 library issues</a>
</li>
</ol>
<ul><li>2015 Filesystem library TS (ISO/IEC TS 18822:2015) (<a rel="nofollow" class="external text" href="http%3A//www.iso.org/iso/catalogue_detail.htm%3Fcsnumber%3D63483">ISO Store</a>) (<a rel="nofollow" class="external text" href="http%3A//www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4100.pdf">2014 draft</a>)
</li></ul>
<p>This TS is an experimental C++ library extension that specifies a filesystem library based on boost.filesystem V3 (with some modifications and extensions)
</p>
<ul><li>2015 Extensions for Parallelism TS (ISO/IEC TS 19570:2015) (<a rel="nofollow" class="external text" href="http%3A//www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm%3Fcsnumber%3D65241">ISO Store</a>) (<a rel="nofollow" class="external text" href="http%3A//www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4507.pdf">2015 draft</a>)
</li></ul>
<p>This TS standardizes parallel and vector-parallel API for all standard library algorithms, as well as adds new algorithms such as <code>reduce</code>, <code>transform_reduce</code>, or <code>exclusive_scan</code>
</p>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: Future development">edit</a>]</span> <span class="mw-headline" id="Future_development">Future development</span>
</h3>
<ul>
<li> <a href="../experimental.html" title="cpp/experimental">Experimental technical specifications</a> (Library Fundamentals, Concurrency, Concepts, Networking, Ranges, Transactional Memory, Array Extensions, Modules)
</li>
<li> 2017 C++17 (<a rel="nofollow" class="external text" href="http%3A//www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4527.pdf">2015-05-22 draft</a>)
</li>
</ul>
<p>The next major revision of the C++ standard
</p>
<ol>
<li> Language changes: fold-expressions, u8-char, simplified nested namespaces. Removed trigraphs
</li>
<li> Library changes: contiguous iterators, non-member size/empty/data, try_emplace, insert_or_assign, uncaught_exceptions. Removed auto_ptr and deprecated function objects
</li>
</ol>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: See also">edit</a>]</span> <span class="mw-headline" id="See_also">See also</span>
</h3>
<table class="t-dsc-begin">

<tr class="t-dsc">
<td colspan="2"> <div class="t-dsc-see">
<span><a href="../../c/language/history.html" title="c/language/history">C documentation</a></span> for <span class="t-dsc-see-tt"><span>History of C</span></span>
</div>
</td>
</tr>

</table>
<h3>
<span class="editsection">[<a href="http%3A//en.cppreference.com/mwiki/index.php" title="Edit section: External links">edit</a>]</span> <span class="mw-headline" id="External_links">External links</span>
</h3>
<ul>
<li>
<a rel="nofollow" class="external text" href="http%3A//www.stroustrup.com/hopl2.pdf">A History of C++: 1979-1991</a>
</li>
<li>
<a rel="nofollow" class="external text" href="http%3A//www.stroustrup.com/hopl-almost-final.pdf">Evolving a language in and for the real world: C++ 1991-2006</a>
</li>
<li>
<a rel="nofollow" class="external text" href="http%3A//isocpp.org">Standard C++ foundation</a>
</li>
<li>
<a href="http%3A//en.wikipedia.com/wiki/C%2B%2B#History" class="extiw" title="enwiki:C++"> C++ on Wikipedia</a>
</li>
<li>
<a rel="nofollow" class="external text" href="http%3A//www.open-std.org/jtc1/sc22/wg21/">C++ Standards Committee</a>
</li>
</ul>

<!-- 
NewPP limit report
Preprocessor visited node count: 2516/1000000
Preprocessor generated node count: 5863/1000000
Post‐expand include size: 103556/2097152 bytes
Template argument size: 10745/2097152 bytes
Highest expansion depth: 13/40
Expensive parser function count: 0/100
-->

<!-- Saved in parser cache with key mwiki1-mwiki_en_:pcache:idhash:4470-0!*!0!!en!*!* and timestamp 20150625151621 -->
</div>                    <!-- /bodycontent -->
                                        <!-- printfooter -->
                    <div class="printfooter">
                    Retrieved from "<a href="http%3A//en.cppreference.com/mwiki/index.php">http://en.cppreference.com/mwiki/index.php?title=cpp/language/history&amp;oldid=79149</a>"                    </div>
                    <!-- /printfooter -->
                                                            <!-- catlinks -->
                    <div id="catlinks" class="catlinks catlinks-allhidden"></div>                    <!-- /catlinks -->
                                                            <div class="visualClear"></div>
                    <!-- debughtml -->
                                        <!-- /debughtml -->
                </div>
                <!-- /bodyContent -->
            </div>
        </div>
        <!-- /content -->
        <!-- footer -->
        
        <!-- /footer -->
        <script>if(window.mw){
mw.loader.state({"site":"loading","user":"missing","user.groups":"ready"});
}</script>
<script src="../../../common/skin_scripts.js"></script>
<script>if(window.mw){
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.hidpi","ext.gadget.ColiruCompiler"], null, true);
}</script>
<script src="../../../common/site_scripts.js"></script>

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2828341-1']);
_gaq.push(['_setDomainName', 'cppreference.com']);
_gaq.push(['_trackPageview']);
</script><!-- Served in 0.082 secs. -->
	</body>
<!-- Cached 20150625181918 -->
</html>
